﻿// Eight POJ - 1077.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://vjudge.net/problem/POJ-1077#author=GPT_zh
15数码难题已经存在了100多年；即使你不知道它的名字，你也见过它。它由15个可滑动的瓷砖组成，每个上面都有一个数字从1到15，并且都放在一个4乘4的框架中，其中有一个瓷砖是缺失的。我们称缺失的瓷砖为'x'；这个难题的目标是将这些瓷砖排列成以下顺序：
 1  2  3  4

 5  6  7  8

 9 10 11 12

13 14 15  x

唯一合法的操作是将'x'与与其共享边的一个瓷砖交换位置。例如，下面的移动序列可以解决一个稍微打乱的难题：
 1  2  3  4    1  2  3  4    1  2  3  4    1  2  3  4

 5  6  7  8    5  6  7  8    5  6  7  8    5  6  7  8

 9  x 10 12    9 10  x 12    9 10 11 12    9 10 11 12

13 14 11 15   13 14 11 15   13 14  x 15   13 14 15  x

           r->           d->           r->

上一行中的字母表示在每一步中'x'瓷砖与其邻居瓷砖交换位置；合法的值为'r'，'l'，'u'和'd'，分别表示右，左，上和下。

并不是所有的难题都能被解决；在1870年，一个叫做Sam Loyd的人因为分发一个无解版本的难题而出名，使许多人感到沮丧。实际上，要将一个普通的难题变成一个无解的难题只需要交换两个瓷砖的位置（当然不包括缺失的'x'瓷砖）。

在这个问题中，你需要编写一个解决较为不知名的8数码难题的程序，它由一个3乘3的排列组成。
输入
你会收到一个8数码难题初始配置的描述。描述只是一个瓷砖的列表，表示它们的初始位置，行从上到下列出，行内瓷砖从左到右列出，其中瓷砖用数字1到8表示，另外还有一个'x'。例如，这个难题
 1  2  3

 x  4  6

 7  5  8

由以下列表描述：

 1 2 3 x 4 6 7 5 8
输出
你将输出到标准输出，如果难题无解，则输出单词``unsolvable''，如果有解，则输出一个完全由字母'r'，'l'，'u'和'd'组成的字符串，描述一系列移动，产生一个解决方案。该字符串不应包含空格，并且应该从行的开始位置开始。

2  3  4  1  5  x  7  6  8

ullddrurdllurdruldr
*/
int main()
{
    std::cout << "Hello World!\n";
}

 